local SDL = require('SDL')
local GGF = require('GGE.函数')
if gge.platform == 'Android' then
    SDL.SetHint('SDL_AUDIODRIVER', 'openslES')
    --SDL.SetHint('SDL_AUDIODRIVER', 'android')
end
qz=math.floor
引擎 =
    require 'SDL.窗口' {
        标题 = 'GGELUA',
        宽度 = 960,
        高度 = 540,
        帧率 = 60,
        --全屏 = true,
        --渲染器 = 'opengl'
    }
function 引擎:初始化()
    require('custom')
    require('UIlayer')
    --FPS = require("fps")(50)
    SDL.MOUSE_MOTION = false
    collectgarbage("generational")
    collectgarbage("incremental")
    --缺少蔬菜 赤金宝箱 黄铜宝箱各类宝箱
    __上次时间 = os.time()
    标签 = require('IM窗口')()
    -- local files = {}
    -- for file in io.popen('dir "assets/scene" /b'):lines() do
    --     table.insert(files, file)
    -- end
    -- local mapFiles = {}
    -- for _, file in ipairs(files) do
    --     if file:match("%.map$") then
    --         table.insert(mapFiles, '"assets/scene/' .. file .. '"')
    --     end
    -- end
    -- local outputFile = io.open("assets/test.txt", "w")
    -- for _, mapFile in ipairs(mapFiles) do
    --     outputFile:write(mapFile .. ",\n")
    -- end
    -- outputFile:close()
end

-- 引入SDK
__JGESDK = require("网络/jgesdk")
-- 同步热更文件
_JGE_HOT_UPDATE = {}
__JGESDK:加载热更()

function 引擎:更新事件(dt, x, y)
    if type(dt) == "number" then
        if 标签.是否可见 then
            标签:更新(dt, x, y)
        end
        多开数据[多开数据.当前].__UI界面:更新(dt, x, y)
        if 多开数据[多开数据.当前].__主显 then
            多开数据[多开数据.当前].__主显:更新(dt)
        end
        for i = 1, 5 do
            if 多开数据[i] and i ~= 多开数据.当前 then
                -- 多开数据[i].__UI界面:更新(dt,x,y)
                if 多开数据[i].__主显 then
                    多开数据[i].__主显:更新(dt)
                end
            end
        end
    end
    if __上次时间 ~= os.time() then
        __上次时间 = os.time()
        if 多开数据[多开数据.当前].__全局自动走路开关 then
            多开数据[多开数据.当前].__全局自动走路秒 = 多开数据[多开数据.当前].__全局自动走路秒 + 1
        end
    end
    __JGESDK:处理事件()
end

function 引擎:渲染事件(dt, x, y)
    if self:渲染开始() then
        if 多开数据[多开数据.当前].__主显 then
            多开数据[多开数据.当前].__主显:显示(x, y)
        end
        多开数据[多开数据.当前].__UI界面:显示(x, y)
        if 标签.是否可见 then
            标签:显示(x, y)
        end
        --FPS:显示(10,150, x, y)
        self:渲染结束()
    end
end

local 上一个消息 = 0

function 引擎:窗口事件(ev)
    if ev == SDL.WINDOWEVENT_CLOSE then
        引擎:关闭()
    elseif ev == SDL.WINDOWEVENT_FOCUS_LOST then --最小化
    elseif ev == SDL.WINDOWEVENT_FOCUS_GAINED then --恢复最小化
    elseif ev == SDL.WINDOWEVENT_ENTER then --鼠标进入
    end
end

function 引擎:键盘事件(KEY, KMOD, 状态, 按住)
    if not 状态 then --弹起

    end
    -- if KMOD & SDL.KMOD_LCTRL ~= 0 then
    --     print('左CTRL', 按住)
    -- end
    -- if KMOD & SDL.KMOD_ALT ~= 0 then
    --     print('左右ALT', 按住)
    -- end
end

function 引擎:鼠标事件(KEY, x, y, 按住)
    if KEY == 1025 then

    end
end

function 引擎:输入事件()
end

function 引擎:销毁事件()
end

